tidyrAnálisis de Datos Multivariantes aplicado al Marketing - Curso 2023/24
Universidad de Alicante
Dpto. de Fundamentos del Análisis Económico. Universidad de Alicante
1.- Cada columna es una variable: mide el mismo atributo entre unidades
2.- Cada fila es una observación (caso): misma unidad a través de atributos
3.- Cada celda es un valor
Tendremos información similar y no redundante en una misma tabla
Y se completa la información con uniones a tablas adicionales (ej., para variables codificadas)
Otras estructuras pueden tener sentido para mostrar información (o por convenciones)
Un ejemplo del portal de datos abiertos del Gobierno de España
La visualización es atractiva, PERO sobran filas para analizar los datos
table4a y table4b ofrecen información útil para presentación, pero
tidyverse es eficiente con datos ordenados: ej., gráfico temporalLa utilidad de almacenar los datos en un rectángulo ancho (“wide”) o en uno largo (“long”“) depende de qué queramos hacer
El cambio de forma entre formatos es una tarea habitual del analista de datos.
Cambiar entre representación larga y ancha se conoce como pivotar (o girar)
pivot_longer(): de ancho a largodata frame a cambiar de forma
nombres o índices de las columnas que representan valores, no variables
los nombres de esas antiguas variables van como valores a nueva variable
los valores de las antiguas celdas van a otra nueva variable
table1, se debería pivotar también table4b y unir ambaspivot_longer(): de ancho a largo (cont.)pivot_longer(table4a, 2:3, names_to = "year", values_to = "cases")
table4a %>% pivot_longer(c(`1999`, `2000`), values_to = "cases", names_to = "year")
table4a %>% pivot_longer(names_to = "year", values_to = "cases", -country)
table4a %>% pivot_longer(names_to = "year", values_to = "cases", `1999`:`2000`)pivot_wider(): de largo a anchotable2 sirve para limpiar datos con observaciones que se dispersan en varias filasseparate(): dividir una columna en múltiples variables indicando un separador o vector de posiciones en las que dividirconvert = TRUE intenta convertir el tipo de datos (no mantener carácter)unite(): combinar múltiples columnas en unaDos tipos de valores ausentes: en 2015.Q4 explícitos y en 2016.Q1 implícitos
Esto cambia con la forma de representación
ancho <- accion %>%
pivot_wider(names_from = anio, values_from = rent)
ancho # NA explícitos al convertir a formato ancho
ancho %>% pivot_longer(cols = c("2015","2016"),
names_to = "anio", values_to = "rent")
accion %>% complete(anio, trim) # todos NA explícitos
# (rellena buscando todas combinacines)